package com.dkd.system.service.impl;

import java.util.List;

import com.dkd.common.exception.ServiceException;
import com.dkd.common.exception.base.BaseException;
import com.dkd.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.dkd.system.mapper.TbSkuMapper;
import com.dkd.system.domain.TbSku;
import com.dkd.system.service.ITbSkuService;

import javax.annotation.Resource;

/**
 * 商品Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-03-29
 */
@Service
public class TbSkuServiceImpl implements ITbSkuService 
{
    @Resource
    private TbSkuMapper tbSkuMapper;

    /**
     * 查询商品
     * 
     * @param skuId 商品主键
     * @return 商品
     */
    @Override
    public TbSku selectTbSkuBySkuId(Long skuId)
    {
        return tbSkuMapper.selectTbSkuBySkuId(skuId);
    }

    /**
     * 查询商品列表
     * 
     * @param tbSku 商品
     * @return 商品
     */
    @Override
    public List<TbSku> selectTbSkuList(TbSku tbSku)
    {
        return tbSkuMapper.selectTbSkuList(tbSku);
    }

    /**
     * 新增商品
     * 
     * @param tbSku 商品
     * @return 结果
     */
    @Override
    public int insertTbSku(TbSku tbSku)
    {
        tbSku.setCreateTime(DateUtils.getNowDate());
        return tbSkuMapper.insertTbSku(tbSku);
    }

    /**
     * 修改商品
     * 
     * @param tbSku 商品
     * @return 结果
     */
    @Override
    public int updateTbSku(TbSku tbSku)
    {
        tbSku.setUpdateTime(DateUtils.getNowDate());
        return tbSkuMapper.updateTbSku(tbSku);
    }

    /**
     * 批量删除商品
     * 
     * @param skuIds 需要删除的商品主键
     * @return 结果
     */
    @Override
    public int deleteTbSkuBySkuIds(Long[] skuIds)
    {

        int count=tbSkuMapper.selectchannel(skuIds);
        System.out.println(count+"");
        if(count>0){
            throw new ServiceException("此商品已被货道关联，无法删除");
        }

        return tbSkuMapper.deleteTbSkuBySkuIds(skuIds);
    }

    /**
     * 删除商品信息
     * 
     * @param skuId 商品主键
     * @return 结果
     */
    @Override
    public int deleteTbSkuBySkuId(Long skuId)
    {
//        int count=tbSkuMapper.selectchannel(skuId);
//        System.out.println(count+"");
//if(count>0){
// throw new ServiceException("此商品已被货道关联，无法删除");
//}

        return tbSkuMapper.deleteTbSkuBySkuId(skuId);
    }
    public int insertSkus(List<TbSku> skuList){
      int result= tbSkuMapper.insertTbSku1(skuList);
    return result;
    }
}
